var ZYRequestClient = require("../../../../utils/zy-request");
var requestClient;
const app = getApp();
Page({
  data:{
    // 用户id
    userId:0,
    // 单据id
    applyId:0,
    // 相机高度
    cameraHeight:500,
    // 底部高度
    footerHeight:80,
    // 上传的图片地址
    imageUrls:[],
    // 预览图片数组
    previewImageUrls:[],
    // 当前显示图片
    currentImageUrl:null,
    showPreview:false,
    navbarData:{
      showCapsule: 1, //是否显示左上角图标   1表示显示    0表示不显示
      title: '盖章拍照(0)', //导航栏 中间的标题
      white:true
     },
     // 导航头的高度
     navbarHeight: app.globalData.height * 2 + 20
  },
  onLoad(options){
    var _this = this;
    _this.setData({
      applyId:options.applyId,
    });
    // 读取用户id
    var userInfo = wx.getStorageSync('userInfo');
    _this.setData({
      userId:userInfo.id,
    });
    requestClient = new ZYRequestClient();
    // 设置相机高度，铺满整个屏幕
    wx.getSystemInfo({
      success: (result) => {
        _this.setData({
          cameraHeight:result.windowHeight - _this.data.navbarHeight - _this.data.footerHeight
        });
      },
    })
    // 检查摄像机权限
    wx.getSetting({
      success(res){
        var authSetting = res.authSetting;
        if(authSetting['scope.camera']){
        } else {
          wx.showModal({
            title:'获取权限',
            content:'请授权摄像机权限，否则无法进行文件拍照！',
            showCancel:false,
            success(r){
              
            }
          })
        }
      }
    })
    _this.getStampImageList();
  },
  onShow(){
  },
  // 获取单据盖章拍照图片
  getStampImageList(){
    var _this = this;
    requestClient.getStampImages(_this.data.applyId,function(res){
      if(res.data.data){
        _this.setData({
          imageUrls:res.data.data,
          previewImageUrls:res.data.data,
          currentImageUrl:res.data.data[res.data.data.length -1],
          'navbarData.title':'盖章拍照(' + res.data.data.length + ')',
        });
      }
    })
  },
  // 执行拍照
  takePhoto() {
    var _this = this;
    wx.showLoading({
      title: '正在拍照上传...',
      mask:true,
    })
    const cameraContext = wx.createCameraContext();
    cameraContext.takePhoto({
      quality: 'normal',
      success: (res) => {
        // 上传照片
        requestClient.uploadImage(_this.data.userId,res.tempImagePath,function(res){
          wx.hideLoading({
            success: (res) => {},
          })
          if(res.data == null){
            wx.showToast({
              title: '上传失败！',
              icon:'none'
            })
            return;
          }
          _this.setData({
            currentImageUrl:res.data,
          });
          var imageUrls = _this.data.imageUrls;
          imageUrls.push(res.data);
          _this.setData({
            imageUrls:imageUrls,
            previewImageUrls:imageUrls,
            'navbarData.title':'盖章拍照(' + imageUrls.length + ')',
          });
        });
      }
    })
  },
  error(e) {
    wx.showToast({
      title: '摄像机拍照错误!',
      icon:'error'
    })
  },
  // 查看拍照图片
  bindGoScanPhoto(e){
    var _this = this;
    _this.setData({
      showPreview:true,
      previewImageUrls:_this.data.imageUrls,
    });
  },
  // 删除图片
  deleteImage(e){
    var _this = this;
    var index = e.detail.index;
    requestClient.removeStampImage(_this.data.imageUrls[index],function(res){
      var imageUrls = _this.data.imageUrls;
      imageUrls.splice(index,1);
      if(imageUrls.length > 0){
        _this.setData({
          currentImageUrl:imageUrls[imageUrls.length -1],
        });
      } else {
        _this.setData({
          currentImageUrl:null,
        });
      }
      _this.setData({
        imageUrls:imageUrls,
        previewImageUrls:imageUrls,
        'navbarData.title':'盖章拍照(' + imageUrls.length + ')',
      });
    });
  },
  // 隐藏图片显示
  hideImage(e){
    var _this = this;
    var imgLength = _this.data.imageUrls.length;
    if(imgLength == 0){
      _this.setData({
        currentImageUrl:null,
      })
    } else {
      // 赋值最近拍照的图片
      _this.setData({
        currentImageUrl:_this.data.imageUrls[imgLength - 1],
      })
    }
  },
  // 完成盖章拍照
  completePhoto(e){
    var _this = this;
    // 判断是否拍照上传
    if(_this.data.imageUrls.length == 0){
      wx.showToast({
        title: '请拍照上传!',
        icon:'none'
      })
      return;
    }
    wx.showLoading({
      title: '正在提交...',
      mask:true,
    })
    var stampImageInfo = {
      applyId:_this.data.applyId,
      imageUrls:_this.data.imageUrls,
    };
    setTimeout(() => {
      // 上传盖章拍照图片
      requestClient.uploadStampImages(stampImageInfo,function(res){
        wx.hideLoading({
          success: (res) => {},
        })
        if(res.data.data){
          wx.showModal({
            title:'上传完毕',
            content:'在单据关闭之前，您可以多次拍照上传，关闭单据后可以查看盖章文件',
            showCancel:false,
            success(r){
              if(r.confirm){
                wx.navigateBack({
                  delta: 1,
                })
              }
            }
          })
        } else {
          wx.showToast({
            title: '提交失败!',
            icon:'none'
          })
        }
      });
    }, 500);
  },
})